]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
Use idle handler for overlay key binding
authorColin Walters <walters@src.gnome.org>
Fri, 5 Dec 2008 21:50:09 +0000 (21:50 +0000)
committerColin Walters <walters@src.gnome.org>
Fri, 5 Dec 2008 21:50:09 +0000 (21:50 +0000)
Running into odd problems with the overlay/windows key breaking, hopefully
this will work around those.

svn path=/trunk/; revision=121

js/ui/main.js

index aef8057fb600504f231a5419682040acdcf56292..62fa65c410cf9a588535aa289ee0aa2b027a4dc4 100644 (file)
@@ -3,6 +3,7 @@
 const Clutter = imports.gi.Clutter;
 const Shell = imports.gi.Shell;
 const Signals = imports.signals;
+const Mainloop = imports.mainloop;
 const Tweener = imports.tweener.tweener;
 
 const Panel = imports.ui.panel;
@@ -123,11 +124,16 @@ function start() {
     
     let display = global.screen.get_display();
     display.connect('overlay-key', function(display) {
-        if (overlay.visible) {
-            hide_overlay();
-        } else {
-            show_overlay();
-        }
+        // Queue an idle for this, because we're getting called
+        // out of a metacity event handler, and doing a lot of
+        // work from inside there is...iffy.
+        Mainloop.idle_add(function () {
+            if (overlay.visible) {
+                hide_overlay();
+            } else {
+                show_overlay();
+            }
+        });
     });
 }